package com.objectproject.main.dao.iface.hierarchy;

import java.util.ArrayList;

import com.objectproject.main.model.MyObject;


public interface MyObjectHierarchyDAO {
	
	
	public abstract ArrayList<Long> selectSuperObjectIds(long objectId);
	public abstract ArrayList<Long> selectSubObjectIds(long objectId);
	public abstract ArrayList<MyObject> selectSuperObjects(long objectId);
	public abstract ArrayList<MyObject> selectSubObjects(long objectId);
	public abstract void insertHierarchy(long objectId, long superObjectId);
	public abstract void deleteHierarchy(long objectId, long superObjectId);
	
	//advanced
	public abstract ArrayList<Long> selectAncestorObjectIds(long objectId);
	public abstract ArrayList<Long> selectDescendantObjectIds(long objectId);
	public abstract ArrayList<Long> selectLeafObjectIds(long objectId);
	public abstract ArrayList<Long> selectFinalObjectIds(long objectId);
	public abstract ArrayList<Long> selectInterfaceObjectIds(long objectId);
	
	public abstract ArrayList<MyObject> selectAncestorObjects(long objectId);
	public abstract ArrayList<MyObject> selectDescendantObjects(long objectId);
	public abstract ArrayList<MyObject> selectLeafObjects(long objectId);
	public abstract ArrayList<MyObject> selectFinalObjects(long objectId);
	public abstract ArrayList<MyObject> selectInterfaceObjects(long objectId);
}
